package health_system.health_system.config;

import com.fasterxml.jackson.databind.Module;
import com.fasterxml.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Jackson配置类，用于处理Hibernate懒加载和序列化问题
 */
@Configuration
public class JacksonConfig {

    /**
     * 配置Hibernate5JakartaModule以正确处理Hibernate代理对象和懒加载集合
     *
     * @return Hibernate5JakartaModule模块
     */
    @Bean
    public Module hibernateModule() {
        Hibernate5JakartaModule hibernateModule = new Hibernate5JakartaModule();
        
        // 配置为不序列化延迟加载的对象，而是返回null
        hibernateModule.configure(Hibernate5JakartaModule.Feature.FORCE_LAZY_LOADING, false);
        hibernateModule.configure(Hibernate5JakartaModule.Feature.USE_TRANSIENT_ANNOTATION, false);
        
        return hibernateModule;
    }
} 